객체 특성으로 선택하기 & 켜 보이기,숨기기
페이지 정보
작성자 XICAD 짱 댓글 4건 조회 2,686회 작성일 23-06-19 10:36본문
원하는데로 체크해서 선택이 됬을때 그 객체만 보이게도 가능할까요?
그리고 켜 보이기 숨기기에서
1.강제 색 적용한 경우에 그 색상만 보이게도 가능할까요? ( 같은 켜이지만 특정 색상만 보이게)
2.블록을 숨기고 싶을때 그 전체숨기기도 가능할까요?
댓글목록
이자더님의 댓글
이자더 작성일
이론적으로는 가능하나, 작동 시간이 너무 오래 걸려서 만들어도 유효할 것 같지 않습니다.
블럭 숨기기는 지금 구현이 되어 있는데, 아래 글의 맨 끝을 보시면 되세요.
https://izzarder.com/100
zwcad사용자님의 댓글
zwcad사용자 작성일
(defun c:selectcoloron(/ entdata entcolour colour layer layerlist layercolourlist layernamefilter strlayer strlayerlen filter)
(prompt "\n특정 색상 객체만 보기")
(setq entdata (entget (car (entsel "\n객체를 선택하세요."))))
(if (setq entcolour (cdr (assoc 62 entdata)))
(setq colour entcolour)
(setq colour (cdr (assoc 62 (tblsearch "layer" (cdr (assoc 8 entdata))))))
)
(setq layer (tblnext "layer" T))
(while layer
(setq layerlist (append layerlist (list layer)))
(setq layer (tblnext "layer"))
)
(while layerlist
(if
(/= colour (cdr (assoc 62 (nth 0 layerlist))))
(setq layerlist (cdr layerlist))
(progn
(setq layercolourlist (append (list (cdr (assoc 2 (nth 0 layerlist)))) layercolourlist))
(setq layerlist (cdr layerlist))
)
)
)
(if (= layercolourlist nil)
(setq filter (list (cons 62 colour) (cons -4 "<not") (cons 0 "insert") (cons -4 "not>")))
(progn
(setq strlayer "")
(while (car layercolourlist)
(setq strlayer (strcat strlayer (car layercolourlist) ","))
(setq layercolourlist (cdr layercolourlist))
)
(setq strlayerlen (strlen strlayer))
(setq layernamefilter (substr strlayer 1 (1- strlayerlen)))
(setq filter (list (cons -4 "<or") (cons -4 "<and") (cons 8 layernamefilter) (cons 62 256) (cons -4 "and>") (cons 62 colour) (cons -4 "or>") (cons -4 "<not") (cons 0 "insert") (cons -4 "not>")))
)
)
(sssetfirst nil (ssget "a" filter))
(command "ISOLATEOBJECTS" "HIDEUNSEL")
(princ)
)
(defun c:colorback()
(command "UNISOLATEOBJECTS")
) ;defun
기존에 가지고 있던 리습을 간단히 짜집기해서 만들어보았는데
이자더님 말씀대로 도면이 조금만 무거워도 작동 시간이 너무 오래 걸려 실제로 사용하기는 어려울 듯 합니다
이자더님의 댓글
이자더 작성일감사합니다.^^
XICAD 짱님의 댓글
XICAD 짱 작성일감사합니다^^